package ch10_thread.thread;

/**
 * 
 * 1、Java异常图
 * 2、在实际工作中，如何处理全局异常？为什么要处理全局异常？不处理行吗？
 * 3、run方法是否可以抛出异常？如果抛出异常，线程的状态会怎么样？
 * 4、线程中如何处理某个未处理异常？
 *
 * @author guodd
 * @version 1.0 use jdk 1.8
 * @see java.lang.Thread.UncaughtExceptionHandler
 */
public class ThreadException implements Runnable {
    // 主线程可以轻松发现异常，子线程却不行
    // 子线程的异常无法用传统方法捕获
    // 不能直接捕获的后果、提高健壮性
    public static void main(String[] args) {
        Thread t01 = new Thread(new ThreadException());
        // t01.setUncaughtExceptionHandler();
        t01.start();
        for (int i = 0; i < 1000; i++) {
            System.out.println(i);
        }
    }

    @Override
    public void run() {
        throw new RuntimeException();
    }
}
